<template>
	<div>
		<!-- 下方代码是插值语法，可以直接看到vc身上的属性，所以可以直接$store -->
		<h2>当前求和为：{{sum}}</h2>&nbsp;
		<h2>当前求和放大100倍后的值：{{bigSum}}</h2>&nbsp;
		<select v-model.number="n">
			<option value="1">1</option>
			<option value="2">2</option>
			<option value="3">3</option>
		</select>&nbsp;
		<button @click="increment">+</button>&nbsp;
		<button @click="decrement">-</button>&nbsp;
		<button @click="incrementIfOdd">奇数再加</button>&nbsp;
		<button @click="incrementWait">等一等再加</button>
	</div>
</template>

<script>
	export default {
		name:'Count',
		data(){
			return {
				n:1 //n是用户选择的数字
			}
		},
		computed:{
			sum(){
				return this.$store.state.sum
			},
			bigSum(){
				return this.$store.getters.bigSum
			}
		},
		methods:{
			//直接加，不包含其他业务逻辑，所以可以直接用commit去指挥mutations
			increment(){
				this.$store.commit('JIA',this.n)
			},
			//直接减，不包含其他业务逻辑，所以可以直接用commit去指挥mutations
			decrement(){
				this.$store.commit('JIAN',this.n)
			},
			
			//奇数再加,是包含其他业务逻辑的，要经过action处理业务逻辑，合适的时候再用commit去指挥mutations
			incrementIfOdd(){
				this.$store.dispatch('jiaOdd',this.n)
			},
			//等一等再加，是包含其他业务逻辑的，要经过action处理业务逻辑，合适的时候再用commit去指挥mutations
			incrementWait(){
				this.$store.dispatch('jiaWait',this.n)
			}
		}
	}
</script>